package top.kaoshanji.p1ch03b;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import top.kaoshanji.u1constant.FileConstant;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

/**
 * 代码清单 p1ch03b-11：文件操作的实用方法的的使用示例
 * author kaoshanji
 * ^_^
 * create time 2025/1/11 16:39
 */
public class FilesExample01 {

    private static final Logger logger = LogManager.getLogger(FilesExample01.class);

    public static void main(String[] args) throws IOException {
        logger.info("...代码清单 p1ch03b-11：文件操作的实用方法的的使用示例...");

        Path newFile = Files.createFile(Paths.get(FileConstant.LOCAL_ROOT_PATH.concat("p1ch03b11-new.txt")).toAbsolutePath());

        List<String> content = new ArrayList<>();
        content.add("Hello");
        content.add("World");

        Files.write(newFile, content, StandardCharsets.UTF_8);
        Files.size(newFile);

        byte[] bytes = Files.readAllBytes(newFile);
        System.out.println(new String(bytes));

        ByteArrayOutputStream output = new ByteArrayOutputStream();
        Files.copy(newFile, output);

        // 删除就什么都看不到..不过这里的目的是展示Files的一些方法
        Files.delete(newFile);

    }

}
